#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //多个不同的对象可以关联同一个槽函数
    connect(ui->bt1,SIGNAL(clicked()),this,SLOT(fun()));
    connect(ui->bt2,SIGNAL(clicked()),this,SLOT(fun()));
    connect(ui->bt3,SIGNAL(clicked()),this,SLOT(fun()));
    connect(ui->bt4,SIGNAL(clicked()),this,SLOT(fun()));
}

MainWindow::~MainWindow()
{
    delete ui;
}
//四个按钮共用同一个槽函数
void MainWindow::fun()
{
    //qDebug()<<"四个按钮都会调用这个槽函数";
    //如何区分究竟是哪个按钮点击，调用这个槽函数的呢？
    //方法1：获取信号的发送者，判断究竟是谁触发信号调用槽函数
//    QObject *p=sender();
//    if(p==ui->bt1)
//        qDebug()<<"你点击的是按钮1";
//    else if(p==ui->bt2)
//        qDebug()<<"你点击的是按钮2";

    //进一步：你点击按钮1--》字体设置成楷体26号
    //       你点击按钮2--》背景颜色设置成红色
//    QFont myfont("楷体",26);
//    QObject *p=sender();
//    if(p==ui->bt1)
//        ui->bt1->setFont(myfont);
//    else if(p==ui->bt2)
//        ui->bt2->setStyleSheet("background-color:rgb(255,0,0);");

    QObject *p=sender();
    QFont myfont("楷体",26);
    //错误的：p是父类的指针，QObject类没有setFont方法
    //       setFont是属于子类的方法
    //p->setFont(myfont);
    QPushButton *mybt=qobject_cast<QPushButton *>(p);
    mybt->setFont(myfont);
}



